Applying the wisdom in The Pragmatic Programmer to Dynamics CRM
The book "The Pragmatic Programmer" provides a wealth of advice for becoming a great professional software architect, developer or manager. Below are my thoughts on how to put the authors' advice to use day to day while working with Dynamics CRM. The book provides 70 tips across 8 chapters starting with "soft skills" and moving to more technical topics. The tips, along with other major points, are listed on the left in the table below with my commentary to the right.
Preface:What Makes a Pragmatic Programmer?
Early adopter/fast adapter
Really dig in to the CRM documentation and SDK. Find what's new or something you haven't explored yet. Take the time to experiment. Don't worry about making mistakes early on. Mistakes are essential to learning new things. (Just don't release your mistakes to production!)
Inquisitive
Spend some time each day on the CRM forums reading Q&A's. Ask some questions. Read CRM and related blogs and articles. Keep your own knowledge base of things you learn.
Critical thinker
Find your own answers and get the facts. Don't just settle for someone else's way of doing something. There might be a better way. (There usually is.)
Realistic
Just because Dynamics CRM provides lots of productivity tools (e.g., form builders, workflow), it still takes significant time and attention to detail to build out a successful CRM system. Make progress, test and prove your solutions, and keep going.
Jack of all trades
There are dozens of technologies that Dynamics CRM utilizes or that can enhance the implementation. Strive to learn as much as you can about these other components. Examples include Microsoft Office, JavaScript, HTML5, OData, JSON, Microsoft SQL Server, Mobile devices, Tablets...
Tip 1: Care About Your Craft
Read the documentation, buy the CRM books that come out, participate on forums... If you're responsible for implementing Dynamics CRM then you're fortunate that there are dozens of ways to learn about how to successfully implement CRM for any company.
Tip 2: Think! About Your Work
Don't run on auto-pilot. It's not just another plug-in you're creating or just another form. Your goal is to help others work more effectively and you can only achieve that by thinking hard about everything you're doing. Even though software is relatively easy to correct after a mistake, you should still take the saying "Measure twice and cut once" to heart and take the time to really think about what you're doing.
Chapter 1: A Pragmatic Philosophy
Take Responsibility
Mastering Dynamics CRM and related apps, languages, tools, etc. is an ongoing process. It's ok to admit ignorance or error in working with all of these components. And with lots of moving pieces involved, unforeseen technical problems may come up or you might not design or code something perfectly (no, say it isn't so!) but once you start on a project it's your responsibility to complete the work. If you make a mistake, admit it honestly and work on options to fix things. It's on you. So provide options, don't make lame excuses.
Tip 3: Provide Options, Don't Make Lame Excuses
Real-world example: After you implement CRM on-premises, users are getting time-out messages. Rather than putting the blame on SQL Server (lame excuse!), try to come up with at least 5 possible ways to resolve the problem. Ask for help if you need it then present the options and fix the issue.
Tip 4: Don't Live with Broken Windows
It's well known that if a city building has a broken window then many more will follow, along with graffiti and trash. Although I haven't seen anyone spray paint their CRM system, I have seen the broken windows concept occur with CRM.
One small example is one that you've probably seen as well: Someone adds fields to an entity but decides not to enter descriptions and the next person comes along and concludes that entering a description isn't necessary so they also avoid it. The first person broke a window and others followed suit -- not out of maliciousness but perhaps out of laziness or going along to get along.
At the code level, another broken window that I've seen is the initial use of JavaScript code that reads/updates the HTML DOM followed by even more code that does the same, making the next CRM upgrade more difficult.
The authors here are asking us to not live with broken windows, to identify what's not right and fix it sooner rather than later, before CRM becomes a system that no one wants to use.
The book "The Pragmatic Programmer" provides a wealth of advice for becoming a great professional software architect, developer or manager. Below are my thoughts on how to put the authors' advice to use day to day while working with Dynamics CRM. The book provides 70 tips across 8 chapters starting with "soft skills" and moving to more technical topics. The tips, along with other major points, are listed on the left in the table below with my commentary to the right.
One small example is one that you've probably seen as well: Someone adds fields to an entity but decides not to enter descriptions and the next person comes along and concludes that entering a description isn't necessary so they also avoid it. The first person broke a window and others followed suit -- not out of maliciousness but perhaps out of laziness or going along to get along.
At the code level, another broken window that I've seen is the initial use of JavaScript code that reads/updates the HTML DOM followed by even more code that does the same, making the next CRM upgrade more difficult.
The authors here are asking us to not live with broken windows, to identify what's not right and fix it sooner rather than later, before CRM becomes a system that no one wants to use.